package ae.pcfc.cldos.online.common.manager;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import java.util.Map;

import ae.pcfc.cldos.online.common.clddb.domain.AppMetaData;
import ae.pcfc.cldos.online.common.clddb.domain.TempFileStorage;
import ae.pcfc.cldos.online.common.manager.provider.FileStorageManagerImpl.FileStorage;
import ae.pcfc.cldos.online.common.vo.FileVO;

/**
 * 
 * @author arosa
 *
 */
public interface FileStorageManager {

	public List<TempFileStorage> storeFiles(AppMetaData appMetaData, 
			List<FileVO> fileVOList, Map<String, TempFileStorage> tempFileStoragesMap) throws IOException;
	
	public List<TempFileStorage> storeFiles(AppMetaData appMetaData, List<FileVO> fileVOList) throws IOException;
	
	public TempFileStorage storeFileInNewTransaction(FileVO fileVO, Long appId) throws IOException;
	
	public TempFileStorage storeFile(FileVO fileVO, Long appId) throws IOException;
	
	public FileVO getFileFromJavaStorageById(Long fileId) throws FileNotFoundException;
	
	public FileVO getFileFromGSStorageById(Long fileId) throws FileNotFoundException;
	
	public void deleteFromStorage(Long fileId, String fileExt, String fileType, FileStorage fst);
	
	public void deletePaymentVouchers(Long appId);
	
	public Long transferToDotNet(FileVO fileVO) throws IOException;
}
